# 需求：用户输入当前目录下的任意文件名，程序完成对该文件的备份功能，文件名为xx[备份].后缀，例如：test[备份].txt

'''
步骤：
1. 接收用户输入的文件名；
2. 规划备份文件名；
3. 备份文件写入数据。
'''

# 1. 接收用户输入的文件名 sound.txt.mp3
old_name = input('请输入你要备份的文件名字：')

# 2. 规划备份文件名
# 2.1 提取目标文件后缀，找到名字中的.，将名字和后缀进行分离(最右侧的点才是后缀的点)
index = old_name.rfind('.')

# 思考：有效文件名才备份，如 .txt  属于无效文件
if index > 0:
    poxtfix = old_name[index:]

# 2.2 组织备份的文件名，xx + [备份] + 后缀
new_name = old_name[:index] + '[备份]' + poxtfix
print(new_name)

# 3. 备份文件写入数据
# 3.1 打开原文件和备份文件
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')

# 3.2 原文件读取，新文件写入数据
# 如果不确定文件大小，循环读取写入，当读取数据没有了终止循环
while True:
    con = old_f.read(1024)
    if len(con) == 0:
        break
    new_f.write(con)

# 3.3 关闭原文件和备份文件
old_f.close()
new_f.close()